namespace WarehouseShipment {
  export interface SearchForm extends Base.Pagination {
    waybillNumList: string;
    fbaNumberList: string;
    transferOrderNumberList: string;
    warehouseCodeList: string[];
    customerIdList: string[];
    companyId: string;
    zipCode: string;
    bizIdList: string[];
    followIdList: string[];
    companyIdList: string[];
    warehouseBillNumList: string;
    status: number | undefined;
  }

  export interface WaybillDetails {
    waybillNum: string;
    countryRegionName: string;
    channelName: string;
    remark: string;
    declarationTypeList: Array<{ name: string; code: string }>;
    taxesTypeList: Array<{ name: string; code: string }>;
    bizPreOrderShipmentFileResDtoList: FileListRow[];
    preOrderShipmentBox: WaybillBox[];
    [propsName: string]: any;
  }

  export type FileListRow = {
    id: string;
    filename: string;
    createName: string;
    fileUrl: string;
    fileType: number;
  };
  export type WaybillBox = {
    shipmentId: number;
    shipmentNumber: string;
    shipmentBoxNumber: string;
    fbaNumber: string;
    fbaBoxNumber: string;
    poNumber: string;
    productChineseName: string;
    productEnglishName: string;
    productDeclarePrice: number;
    productDeclareNum: number;
    productDeclarePriceAll: number;
    productMaterial: string;
    productHsCode: string;
    productFunction: string;
    productBrand: string;
    productModen: string;
    productImgUrl: string;
    productSaleUrl: string;
    boxWeight: number;
    boxLength: number;
    boxWidth: number;
    boxHeight: number;
    volumeWeight: number;
    circumference: number;
  };

  export type ListRows = {
    id: number;
    waybillNum: string;
    warehouseBillNum: string;
    fbaNumber: string;
    transferOrderNumber: string;
    customerId: number;
    customerName: string;
    companyId: number;
    companyName: string;
    countryRegionName: string;
    agentChannelId: number;
    agentChannelName: string;
    warehouseCode: string;
    itemNumber: number;
    actualWeight: number;
    zipCode: string;
    innerRemark: string;
    bizId: number;
    bizName: string;
    followId: number;
    followName: string;
    [propsName: string]: any;
  };
}
